home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Linux Cubed Series 11: TSX-11
/
Linux Cubed Series 11 - TSX-11 Vol 1.iso
/
usr.bin
/
readme.mba
< prev
next >
Wrap
Text File
|
1996-11-30
|
7KB
|
159 lines
___ _____ _____
| | | | | ) / / /
|`'| _ -|- _ || | '_ _ .-. _ / / /
| | ( ) | ( \ `| | ) ( \ `-. ( ) `---. / /
| -'--`-- - `-' \/ ---' - - `-`- --'-- / <> / /
___________________________/\_____________________`.__/_____/____/_____________
Please read the dox /
'
WHAT'S NEW IN THIS RELEASE:
o SPEED
MetalBase 5.0 destroys even 4.1a speed-wise; queries are the same
speed, but adds/updates/deletes are always at least twice as fast, and
often over three times as fast! Internal caching of index pointers
just makes the whole world turn 'round better...
o CONVERSION
The utility MBCONV will convert 4.0 and 4.1a relations to 5.0 format.
It is absolutely perfectly safe, but requires that you have enough
free space to essentially make a copy of the relation.
o LOCKING
Previously, unless you compiled with -DUNIX_LOCKS (and had a *nix
machine), bad things would happen if a program shut down while
something was being changed. Now, since all indices are written at
once (caching is so nice), chances of corruption are much smaller; and
if a process does shut down with a system-placed lock in place, the
next process will detect the condition and remove the lock, and
decrement the number of users. A request queue has also been built
in, so that processes will always get equal timeshares.
o CREATE ON-THE-FLY
You can now design and create a relation at run-time:
rel = mb_new();
mb_addfield (rel, "Customer's last name", T_CHAR, 15);
mb_addfield (rel, "Customer's first name", T_CHAR, 10);
mb_addfield (rel, "Customer's number", T_SERIAL, 40);
mb_addindex (rel, "ix_name", 1, "0,1");
mb_addindex (rel, "ix_number", 1, "2");
mb_create (rel, "/usr/joe/simple.rel", 0);
Check out the code for BUILD and MBCONV; they both use it.
o SIMPLE PHONE NUMBERS
The schema type "phone" (C typedef == "mb_phone") has been added to
5.0 to make handling of phone numbers easier; phone types accept area
codes (of course), and extensions up to x99999. The routines
scn_phone() and fmt_phone() are included for quick handling of phone
numbers, just as scn_ and fmt_ are provided for date and time!
o ENCRYPTION
Encryption is now working for everyone, even MS-DOS users. Be
careful, though--I'm haphazard enough with encryption that, for
example, a bad encryption key passed to VR under DOS will usually
make you reboot your machine; under *nix it'll usually cause a seg
violation. Now THAT's encryption. :)
o DOCUMENTATION
The documentation, though still not perfect, is much more up to date
than it was for the 4.0 release. Included here are:
dox/mbase.dox -- General documentation (the important stuff)
dox/author.dox -- Information on where the hell I can be reached
dox/build.dox -- Information on schema and their compiler, build
dox/crypt.dox -- Information on MetalBase's encryption technique
dox/flow.dox -- Pseudocode for MetalBase's AVL-tree algorithms
dox/format.dox -- Character-by-character format for relations
dox/lock.dox -- Information on MetalBase's locking algorithms
dox/struct.dox -- Information on C structure interface
dox/report.dox -- Incomplete documentation on the report writer
dox/trouble.dox -- Troubleshooting ideas (not too many--sorry)
o NO DAMNED DEBUGGING TRAILS
If you got this release hoping I'd leave some debugging trails in the
code again, BZZZZZT! Sorry, but I'm only allowed to fuck up like that
once a year. I really, really feel stupid about that...
HOW TO BUILD THE STUPID THING:
o Go to the SRC directory.
o If you're using *nix.............type "MAKE"
If you're using Microsoft C......type "NMAKE -f makefile.dos"
If you're using something else...pick either makefile and modify it.
o It'll compile and run STRUCT (or STRUCT.EXE), which will tell you that
you're either screwed, or what to change in the makefile to make the
library appropriately for your compiler. If you're screwed, send me
mail (see dox/author.dox). If you're not, do as it says.
o Check the makefile to make sure it's going to put the headers, library
and executables wherever you want it to.
o Type "MAKE INSTALL" (or "NMAKE -f makefile.dos INSTALL" for Microsoft C).
o It'll compile the library and executables, and put them where you said
to.
o If you have any relations from MetalBase 4.0 or MetalBase 4.1a, go to
where they are and type "MBCONV relationname". It'll convert them to
5.0 (and hopefully the final) format and tell you it's done (it's really
quick, but IRREVERSABLE).
WHAT TOYS YOU GET:
o BLAST.EXE - Removes locks accidentally left around on a relation; sets
the internal number-of-users-on-this-relation to zero.
o BUILD.EXE - Compiles relations from schema files; erases all records
in a relation.
o FORM.EXE - Builds header files from data-entry templates; the DE
interface is really, really easy to program. It's not perfect, but
it's nice.
o MBCONV.EXE - Converts pre-5.0 relations to 5.0 format. Works great!
o REPORT.EXE - Generates reports from template files, interpereted at
run-time.
o VR.EXE - View Relation--one of my favorite toys. 4.0 users, NON-VI
emulation is now the default; it's much, MUCH easier to add and change
records. The basics of the new DE keys are:
CTRL-A, CTRL-return - Accept a transaction
CTRL-Q, CTRL-C - Abort a transaction
CTRL-U, - Undo a change within a field
Arrows, End, Home - As expected
HOW TO PLAY WITH THE STUPID THING:
I've included two programs with this; SAMPLE and BENCH. BENCH is just a
benchmark utility (see sample/readme), but SAMPLE is meant to be example
code, for hooking up the (suggested) data-entry interface, for adding/
deleting/changing records, etc.
Go to the directory SAMPLE and pick-n-edit a makefile. Note that you
don't need -DSTRUCT_ in these; that's just for building the library. But
you WILL need -DNEED_USHORT if your compiler doesn't contain ushort, etc.
-------------------------------------------------------------------------------
Richid
-------------------------------------------------------------------------------